Python : Programming with Python |
您所在的位置:网站首页 › python syspathinsert › Python : Programming with Python |
LibreOffice 7.3 Help Index 🔎︎ Programming with Python ScriptsA Python macro is a function within a .py file, identified as a module. Unlike LibreOffice Basic and its dozen of UNO objects functions or services, Python macros use the XSCRIPTCONTEXT UNO single object, shared with JavaScript and BeanShell. The g_exportedScripts global tuple explicitly lists selectable macros from a module. Python modules hold autonomous code logic, and are independent from one another. XSCRIPTCONTEXT Global VariableGenuine Basic UNO facilities can be inferred from XSCRIPTCONTEXT global variable. Refer to LibreOffice API for a complete description of XSCRIPTCONTEXT. XSCRIPTCONTEXT methods summarize as: Methods Description Mapped in Basic as getDocument() The document reference on which the script can operate. ThisComponent getDesktop() The desktop reference on which the script can operate. StarDesktop getComponentContext() The component context which the script can use to create other uno components. GetDefaultContext HelloWorld and Capitalise installation shared scripts illustrate UNO-related macros making use of XSCRIPTCONTEXT global variable. Python standard output file is not available when running Python macros from Tools - Macros - Run Macro menu. Refer to Input/Output to Screen for more information. Module importXSCRIPTCONTEXT is not provided to imported modules. LibreOffice Basic libraries contain classes, routines and variables, Python modules contain classes, functions and variables. Common pieces of reusable Python or UNO features must be stored in My macros within (User Profile)/Scripts/python/pythonpath. Python libraries help organize modules in order to prevent module name collisions. Import uno.py inside shared modules. Genuine BASIC UNO facilities can be inferred using uno.py module. Use Python interactive shell to get a complete module description using dir() and help() Python commands. Functions Description Mapped in Basic as absolutize() Returns an absolute file url from the given urls. createUnoStruct() Creates a UNO struct or exception given by typeName. CreateUNOStruct() fileUrlToSystemPath() Returns a system path. ConvertFromURL() getClass() Returns the class of a concrete UNO exception, struct, or interface. getComponentContext() Returns the UNO component context used to initialize the Python runtime. GetDefaultContext() Enum() getConstantByName() Looks up the value of an IDL constant by giving its explicit name. See API constant groups isInterface() Returns True, when obj is a class of a UNO interface. systemPathToFileUrl() Returns a file URL for the given system path. ConvertToURL() LibreLogo and TableSample installation shared scripts use uno.py module. More Python-Basic samplesPython UNO Basic UNO features ctx = uno.getComponentContext() smgr = ctx.getServiceManager() obj = smgr.createInstanceWithContext( .. , ctx) CreateUnoService() See Opening a Dialog CreateUnoDialog() See Creating a Listener CreateUnoListener() See UNO data types CreateUnoValue() CreateObject() EqualUnoObjects() ctx = uno.getComponentContext() smgr = ctx.getServiceManager() GetProcessServiceManager() def hasUnoInterfaces(obj, *interfaces): return set(interfaces).issubset(t.typeName for t in obj.Types) HasUnoInterfaces() IsUnoStruct() ctx = uno.getComponentContext() smgr = ctx.getServiceManager() DESK = 'com.sun.star.frame.Desktop' desktop = smgr.createInstanceWithContext(DESK , ctx) StarDesktop desktop = smgr.createInstanceWithContext(DESK , ctx) doc = desktop.CurrentComponent ThisComponent Importing an embedded ModuleSimilarly to LibreOffice Basic that supports browsing and dynamic loading of libraries, Python libraries can be explored and imported on demand. For more information on library containers, visit LibreOffice Application Programming Interface (API) or download LibreOffice Software Development Kit (SDK). Importing a Python document embedded module is illustrated below, exception handling is not detailed: import uno, sys def load_library(library_name: str, module_name=None): """ load library and import module Adapted from 'Bibliothèque de fonctions' by Hubert Lambert at https://forum.openoffice.org/fr/forum/viewtopic.php?p=286213""" doc = XSCRIPTCONTEXT.getDocument() # current document url = uno.fileUrlToSystemPath( \ '{}/{}'.format(doc.URL, 'Scripts/python'+library_name)) # ConvertToURL() if not url in sys.path: # add path if necessary sys.path.insert(0, url) # doclib takes precedence if module_name: # import if requested return zipimport.zipimporter(url).load_module(module_name) def import_embedded_python(): ui = load_library("my_gui",'screen_io') # add path + import ui.MsgBox(sys.modules.keys()) g_exportedScripts = (import_embedded_python,) # Public macrosChủ đề Liên quan Basic UNO Objects, Functions and Services Importing Python Modules Input/Output to Screen LibreOffice Python Scripts Help Please support us! Impressum (Legal Info) | Privacy Policy | Statutes (non-binding English translation) - Satzung (binding German version) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Mozilla Public License v2.0. “LibreOffice” and “The Document Foundation” are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy. LibreOffice was based on OpenOffice.org. Help content debug info:This page is: /text/sbasic/python/python_programming.xhp Title is: Python : Programming with Python |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |